from django.shortcuts import redirect,render,HttpResponse
from django.utils.deprecation import MiddlewareMixin



class AuthMiddleware(MiddlewareMixin):

    # 如果方法中没有返回值 （返回None），继续向后走
    # 如果有返回值 （HttpResponse,render,redirect） ，直接返回，不执行下一个方法
    def process_request(self,request):

        # 0.排除那些不需要登录就能访问的页面
        # request.path_info 获取当前用户请求的URL /login/
        if request.path_info in ("/login/",'/image/code/'):
            return

        # 1.读取当前访问用户的session信息，如果能读到说明已经登陆，就可以继续向后走
        info_dict = request.session.get('info')
        if info_dict:
            return

        # 2如果没登陆，返回登陆界面
        return redirect('/login/')



